home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / gnu / gnulib / sipp / sphigs / test / rotcube.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-15  |  1.8 KB  |  67 lines

  1. #include "sphigs.h"
  2.  
  3. #define CUBE 1
  4. #define VIEW 0
  5.  
  6. main()
  7. {
  8.   point          vertex_cube[] = {
  9.             {0.0, 0.0, 0.0},
  10.             {0.0, 0.0, 1.0},
  11.             {1.0, 0.0, 1.0},
  12.             {1.0, 0.0, 0.0},
  13.             {0.0, 1.0, 0.0},
  14.             {0.0, 1.0, 1.0},
  15.             {1.0, 1.0, 1.0},
  16.             {1.0, 1.0, 0.0}};
  17.   vertex_index      face_cube[] = {
  18.             0, 3, 2, 1, -1,
  19.             4, 5, 6, 7, -1,
  20.             0, 1, 5, 4, -1,
  21.             1, 2, 6, 5, -1,
  22.             2, 3, 7, 6, -1,
  23.             3, 0, 4, 7, -1};
  24.   point          vrp, prp;
  25.   vector      vpn, vup;
  26.   matrix      mat1, mat2, vo_mat, vm_mat;
  27.   int          i;
  28.   
  29.   SPH_begin(640, 480, 7, 64);
  30.   SPH_openStructure(CUBE);
  31.     SPH_rotateY(0.0, mat1);
  32.     SPH_setModelingTransformation(mat1, ASSIGN);
  33.     SPH_rotateZ(0.0, mat2);
  34.     SPH_setModelingTransformation(mat2, POSTCONCATENATE);
  35.     SPH_setEdgeColor(0);
  36.     /* SPH_setInteriorColor(7); */
  37.     SPH_polyhedron(8, 6, vertex_cube, face_cube);
  38.   SPH_closeStructure();
  39.   SPH_setViewBackgroundColor(VIEW, 1);
  40.   SPH_setRenderingMode(VIEW, WIREFRAME);
  41.   SPH_setDoubleBufferingFlag(1);
  42.   SPH_evaluateViewOrientationMatrix(
  43.     SPH_defPoint(&vrp, 3.0, 0.0, 0.0),
  44.     SPH_defPoint(&vpn, 1.0, 0.0, 0.0),
  45.     SPH_defPoint(&vup, 0.0, 1.0, 0.0), vo_mat);
  46.   SPH_evaluateViewMappingMatrix(
  47.     -1.0, 1.0, -1.0, 1.0, PERSPECTIVE,
  48.     SPH_defPoint(&prp, 0.0, 0.0, 1.0),
  49.     -0.001, -1000.0,
  50.     0.0, 1.0, 0.0, 1.0, 0.0, 1.0, vm_mat);
  51.   SPH_setViewRepresentation(VIEW, vo_mat, vm_mat,
  52.     0.0, 1.0, 0.0, 1.0, 0.0, 1.0);
  53.   SPH_postRoot(CUBE, VIEW);
  54.   for (i = 0; i < 2 * 360; i += 4)
  55.   {
  56.     SPH_openStructure(CUBE);
  57.       SPH_deleteElementsInRange(1, 2);
  58.       SPH_setElementPointer(0);
  59.       SPH_rotateY((double) i, mat1);
  60.       SPH_setModelingTransformation(mat1, ASSIGN);
  61.       SPH_rotateZ((double) (i) / 3.0, mat2);
  62.       SPH_setModelingTransformation(mat2, POSTCONCATENATE);
  63.     SPH_closeStructure();
  64.   }
  65.   SPH_end();
  66. }
  67.